package com.version1.diabeco;

import java.util.ArrayList;
//import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
//import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;
import android.app.AlertDialog;
//import android.support.v4.app.NavUtils;
import android.content.DialogInterface;
//import android.content.Intent;

public class ActivityAjustes extends Activity {
	private ArrayList<AjustesFila> objListaAjustes;
	private ListView listViewAjustes;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ajustes);
		
        //Cargamos la listViewAjustes
		CargarListaAjustes();
		
		//Seteo del click sobre la listViewAjustes
	    listViewAjustes.setOnItemClickListener(new OnItemClickListener() { 
		
	    @Override //Evento que se lanza al hacer click en un item de la lista
		public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) {
//	    	Intent intent;
	    	Toast toast;
	    	AjustesFila elegido = (AjustesFila) pariente.getItemAtPosition(posicion); 

			switch (elegido.get_imagen()) {
			case R.drawable.icon_ajustes_usuario:
				//Iniciamos la nueva actividad
//				intent = new Intent(ActivityAjustes.this, PersonalDataActivity.class);
//				startActivity(intent);
				break;
			case R.drawable.icon_ajustes_glucosa:
				dialogRadioButtons(R.string.ajustes_titulo_glucosa, R.array.lb_um_glucosa, -1, R.drawable.icon_ajustes_glucosa);
				break;
			case R.drawable.icon_ajustes_peso:
				dialogRadioButtons(R.string.ajustes_titulo_peso, R.array.lb_um_peso, -1, R.drawable.icon_ajustes_peso);
				break;
			case R.drawable.icon_ajustes_distancia:
				dialogRadioButtons(R.string.ajustes_titulo_distancia, R.array.lb_um_metrica, -1, R.drawable.icon_ajustes_distancia);
				break;
			case R.drawable.icon_ajustes_medicacion:
				CharSequence texto1 = "Seleccionado: " + elegido.get_titulo();
				toast = Toast.makeText(ActivityAjustes.this, texto1, Toast.LENGTH_SHORT);
				toast.show();
				break;
			case R.drawable.icon_ajustes_alarma:	
				//Iniciamos la nueva actividad
//				intent = new Intent(ActivityAjustes.this, TestSettingsActivity.class);
//				startActivity(intent);
			default:
				break;
				}
			}
	     });
	}

	
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_ajustes, menu);
		return true;
	}

	
	
	
	/** Cargamos la lista de Ajustes **/
	public void CargarListaAjustes() {
		// Cargamos la lista de Settings 
		String textTitulo, textSubtitulo; 
		
		//Creamos el ArrayList que va contener las filas tipo AjustesFila
		objListaAjustes = new ArrayList<AjustesFila>();
		
		//Agregamos las entradas a la lista
		textTitulo = getString(R.string.ajustes_titulo_usuario);
		textSubtitulo = getString(R.string.ajustes_subtitulo_usuario);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_usuario, textTitulo, textSubtitulo ));

		textTitulo = getString(R.string.ajustes_titulo_glucosa);
		textSubtitulo = getString(R.string.ajustes_subtitulo_glucosa);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_glucosa, textTitulo, textSubtitulo ));
		
		textTitulo = getString(R.string.ajustes_titulo_peso);
		textSubtitulo = getString(R.string.ajustes_subtitulo_peso);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_peso, textTitulo, textSubtitulo ));
		
		textTitulo = getString(R.string.ajustes_titulo_distancia);
		textSubtitulo = getString(R.string.ajustes_subtitulo_distancia);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_distancia, textTitulo, textSubtitulo ));

		textTitulo = getString(R.string.ajustes_titulo_medicacion);
		textSubtitulo = getString(R.string.ajustes_subtitulo_medicacion);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_medicacion, textTitulo, textSubtitulo ));
		
		textTitulo = getString(R.string.ajustes_titulo_alarma);
		textSubtitulo = getString(R.string.ajustes_subtitulo_alarma);
		objListaAjustes.add(new AjustesFila(R.drawable.icon_ajustes_alarma, textTitulo, textSubtitulo ));
		

		
		
		/**Codigo para usar el Adaptador **/
		 listViewAjustes = (ListView) findViewById(R.id.listViewAjustes);

	       listViewAjustes.setAdapter(new ListAdapter(this, R.layout.activity_ajustes_fila, objListaAjustes){				
	    	   @Override
				public void onEntrada(Object entrada, View view) {
			        if (entrada != null) {
			            TextView texto_superior_entrada = (TextView) view.findViewById(R.id.textViewAjustesFilaTitulo); 
			            if (texto_superior_entrada != null) 
			            	texto_superior_entrada.setText(((AjustesFila) entrada).get_titulo()); 

			            TextView texto_inferior_entrada = (TextView) view.findViewById(R.id.textViewAjustesFilaSubTitulo); 
			            if (texto_inferior_entrada != null)
			            	texto_inferior_entrada.setText(((AjustesFila) entrada).get_subtitulo()); 

			            ImageView imagen_entrada = (ImageView) view.findViewById(R.id.imageViewAjustesFila); 
			            if (imagen_entrada != null)
			            	imagen_entrada.setImageResource(((AjustesFila) entrada).get_imagen());
			        }
				}
			});	
	}
	

	/** PopUp para Mostrar una lista de valores(RadioButtons) **/
	public void dialogRadioButtons(int title, int list, int selected, int icon) {
		AlertDialog popup;
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		
		 
		builder.setIcon(icon);
		builder.setCancelable(false);
		builder.setTitle(title);
		builder.setSingleChoiceItems(list, selected, new DialogInterface.OnClickListener() {
			
		    public void onClick(DialogInterface dialog, int selectedItem) {
//		    	Char v_texto = <char> selectedItem;
//		        Toast toast = Toast.makeText(getApplicationContext(), "Haz elegido la opcion: " + items[item] , Toast.LENGTH_SHORT);
//		        toast.show();
		        dialog.cancel();
		    }
		});
		
		
	    //Boton Cancelar
        builder.setNegativeButton(R.string.btn_cancelar, new DialogInterface.OnClickListener() {

        			public void onClick(DialogInterface dialog, int id) {
                	   dialog.cancel();
                   }
        });
        
        //Cremos el PopUp y lo mostramos
		popup = builder.create();
		popup.show();		
	}
	
	public void dialogCheckBox() { //int title, int list, selected[]) {
//		 mSelectedItems = new ArrayList();  // Where we track the selected items
			AlertDialog popup;
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
		    
		    // Set the dialog title
		    builder.setTitle(R.string.app_name);
		    
		    // Specify the list array, the items to be selected by default (null for none),
		    // and the listener through which to receive callbacks when items are selected
		    builder.setMultiChoiceItems(R.array.lb_um_metrica, null,
		                      new DialogInterface.OnMultiChoiceClickListener() {
		               @Override
		               public void onClick(DialogInterface dialog, int which,
		                       boolean isChecked) {
//		                   if (isChecked) {
//		                       // If the user checked the item, add it to the selected items
//		                       mSelectedItems.add(which);
//		                   } else if (mSelectedItems.contains(which)) {
//		                       // Else, if the item is already in the array, remove it 
//		                       mSelectedItems.remove(Integer.valueOf(which));
//		                   }
		               }
		           });
		    
		       //Boton Aceptar
		       builder.setPositiveButton(R.string.btn_aceptar, new DialogInterface.OnClickListener() {
		               @Override
		               public void onClick(DialogInterface dialog, int id) {
		                   // User clicked OK, so save the mSelectedItems results somewhere
		                   // or return them to the component that opened the dialog
		                   
		               }
		           });
		       
		       //Boton Cancelar
		       builder.setNegativeButton(R.string.btn_cancelar, new DialogInterface.OnClickListener() {
		               @Override
		               public void onClick(DialogInterface dialog, int id) {
		            	   dialog.cancel();
		               }
		           });
		       
				popup = builder.create();
				popup.show();		
		}	
	

}
